Ch 9.htm

назад | содержание | вперед

Работа на уровне файлов

Для создания файла можно использовать метод createTextFile класса FileSystemObject:

Dim NewFSO As New FileSystemObject, NewFile As TextStream

Set NewFile = NewFSO.CreateTextFile ("C:\NewFile.txt")

Для удаления файла используется метод Delete класса File. Необходимо заметить, что перед удалением файл должен быть закрыт с помощью метода close. Программный код, выполняющий удаление файла в приложении, выглядит следующим образом:

Dim NewFile As TextStream, File

Set NewFile = NewFSO.CreateTextFile("c:\NewFile.txt")

NewFile.Close

Set File = NewFSO.GetFile("c:\NewFile.txt")

File.Delete

В этом примере файл сначала создается, а затем удаляется.

Перемещение файлов выполняется с помощью метода Move класса File. Если воспользоваться предыдущим текстом, то код, выполняющий перемещение файла, выглядит следующим образом:

Dim NewFile As TextStream, File

Set NewFile = NewFSO.CreateTextFile("c:\NewFile.txt")

NewFile.Close

Set File = NewFSO.GetFile("c:\NewFile.txt")

File.Move ("c:\NewFile.txt")

При этом, как и при удалении, необходимо закрывать файл.

Копирование файла выполняется аналогично перемещению с использованием метода copy.

Разработаем приложение для изучения работы с файлами. Для этого воспользуемся приложением, созданным в предыдущем примере при рассмотрении работы с папками. Откройте приложение и модифицируйте его следующим образом:

1. Увеличьте размер формы, переставьте кнопки и текстовое поле с меткой, как показано на рис. 9.13. Текст метки измените на Имя файла.

2. Добавьте в форму объект типа FileListBox (Список файлов), дважды щелкнув мышью кнопку FileListBox на панели элементов управления. Используя свойство Name, назовите его filFiles.

3. Измените текст кода в приложении на указанный ниже:

Dim NewFSO As New FileSystemObject, Folder As Folder

Dim sNameFolder As String

Dim sNameFile As String

Dim File

Private Sub cbCreate_Click()

' Создание файла

Dim NewFile As TextStream

sNameFile = dirFolders.Path + "\" + txtNameFile.Text

Set NewFile = NewFSO.CreateTextFile(sNameFile)

filFiles.Refresh

End Sub

Private Sub cbDelete_Click()

' Удаление файла

sNameFolder = dirFolders.Path

Set Folder = NewFSO.GetFolder(sNameFolder)

If Folder.IsRootFolder = True Then

sNameFile = filFiles.Path + filFiles.FileName

Else

sNameFile = filFiles.Path + "\" + filFiles.FileName

End If

Set File = NewFSO.GetFile(sNameFile)

File.Delete

filFiles.Refresh

End Sub

Private Sub cbRename_Click ()

' Переименование файла

sNameFolder = dirFolders.Path

Set Folder = NewFSO.GetFolder(sNameFolder)

If Folder.IsRootFolder = True Then

sNameFile = filFiles.Path + filFiles.FileName

Else

sNameFile = filFiles.Path + "\" + filFiles.FileName

End If

Set File = NewFSO.GetFile(sNameFile)

File.Name = txtNameFile.Text fil

Files.Refresh

End Sub

Private Sub dirFolders Change()

filFiles.Path = dirFolders.Path

End Sub

Private Sub drvSelectDrive_Change()

dirFolders.Path = drvSelectDrive.Drive

End Sub

Private Sub filFiles_Click()

txtNameFile.Text = filFiles.FileName

End Sub

Рис. 9.13. Приложение для изучения работы с файлами

В этом приложении создаются, удаляются и переименовываются файлы. Работа списков синхронизирована по событию change списков устройств и папок.

назад | содержание | вперед